package com.xxg.renrenorder.util;


import com.xxg.renrencommon.exception.ErrorMessage;
import com.xxg.renrencommon.exception.OrderManagerException;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 时间类型工具类
 *
 * @author xxg
 * @date 2021/3/11
 */
public class DateTimeUtil {
    /**
     * 时间字符串装时间类型
     *
     * @param startDate 开始时间
     * @param endDate   结束时间
     * @return 时间类型
     * @throws OrderManagerException 异常信息
     */
    public static Date[] convertDate(String startDate, String endDate) throws OrderManagerException {
        Date sDate = checkParseDateString(startDate);
        Date eDate = checkParseDateString(endDate);
        if (sDate != null && eDate != null) {
            if (sDate.compareTo(eDate) < 0) {
                return new Date[]{sDate, eDate};
            } else {
                throw new OrderManagerException(ErrorMessage.START_DATE_MUST_LESS_THAN_END_DATE);
            }
        }
        return null;
    }

    /**
     * 日期字符串转日期类型
     *
     * @param dateStr 日期字符串
     * @return 日期
     * @throws OrderManagerException 异常信息
     */
    public static Date checkParseDateString(String dateStr) throws OrderManagerException {
        if (dateStr != null) {
            dateStr = dateStr.trim();
            if (dateStr.length() > 0) {
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Date date;
                try {
                    date = simpleDateFormat.parse(dateStr);
                } catch (ParseException e) {
                    throw new OrderManagerException(e.getMessage());
                }
                return date;
            }
        }
        return null;
    }
}
